### generic::basic_endpoint

Describes an endpoint for any socket type.

    template<
        typename Protocol>
    class basic_endpoint

##### Types

Name | Description
--- | ---
data_type | The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
protocol_type | The protocol type associated with the endpoint.

##### Member Functions

Name | Description
--- | ---
basic_endpoint [constructor] | Default constructor. — Construct an endpoint from the specified socket address. — Construct an endpoint from the specific endpoint type. — Copy constructor. — Move constructor.
capacity | Get the capacity of the endpoint in the native type.
data | Get the underlying endpoint in the native type.
operator= | Assign from another endpoint. — Move-assign from another endpoint.
protocol | The protocol associated with the endpoint.
resize | Set the underlying size of the endpoint in the native type.
size | Get the underlying size of the endpoint in the native type.

##### Friends

Name | Description
--- | ---
operator!= | Compare two endpoints for inequality.
operator< | Compare endpoints for ordering.
operator<= | Compare endpoints for ordering.
operator== | Compare two endpoints for equality.
operator> | Compare endpoints for ordering.
operator>= | Compare endpoints for ordering.

The `generic::basic_endpoint` class template describes an endpoint that may be associated with any socket type.

##### Remarks

The socket types sockaddr type must be able to fit into a `sockaddr_storage` structure.

##### Thread Safety

Distinct objects: Safe.

Shared objects: Unsafe.

##### Requirements

Header: `asio/generic/basic_endpoint.hpp`

Convenience header: `asio.hpp`